package com.zrrd.test;

import java.io.File;
import java.util.Arrays;
import java.util.HashMap;

/**
 * @author WanJl
 * @version 1.0
 * @title T3
 * @description
 * @create 2024/5/19
 */
public class T3 {

    public static void getCount(HashMap<String, Integer> hashMap, File file) {

        if (!file.exists() || !file.isDirectory()) {
            System.out.println("文件夹路径有误或不合法");
            return;
        }
        //遍历File对象，获取文件夹里面的所有文件
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isFile()) {//判断是否为文件
                //如果是文件，那么判断该文件的后缀名，是否在hashMap中出现过
                String fileName = f.getName();
                String[] fileNames = fileName.split("\\.");
                String endName=fileNames[fileNames.length - 1];
                //判断hashMap里面有没有endName这个后缀
                if (hashMap.containsKey(endName)) {
                    //如果有，那么就获取这个类型的后缀名出线的次数。+1
                    Integer count = hashMap.get(endName);
                    hashMap.put(endName, count + 1);//把出现的次数+1存入集合
                }else {
                    //没出现过那么就把该类型的后缀名存入集合，次数存1
                    hashMap.put(endName, 1);
                }
            } else {
                getCount(hashMap, f);//如果是文件夹，那么就递归
            }
        }

    }

    public static void main(String[] args) {
        File file = new File("E:/01我的文件夹");
        HashMap<String, Integer> hashMap = new HashMap<>();
        getCount(hashMap, file);
        System.out.println(hashMap);


    }
}
